Measurement exploratory data analysis

In [1]:
from tabulate import tabulate
from IPython.display import Markdown, HTML
import matplotlib.pylab as plt
from typing import List, Tuple

import pandas as pd
import numpy as np
from scipy.signal import find_peaks
from scipy.signal import butter, lfilter

from tsfel.feature_extraction.features import fundamental_frequency

import os
import sys
sys.path.append('../../')
from feature import mafaulda as src
from feature import discovery as fdiscovery

pd.set_option("display.notebook_repr_html", False)

Define data sources

In [2]:
DIR = '../../air_conditioning/'
file_list = [
    DIR + 'excool_digitalis/high_pressure_pump_40percent__1.tsv',
    DIR + 'excool_digitalis/high_pressure_pump_40percent__2.tsv',
    DIR + 'excool_digitalis/high_pressure_pump_40percent_speed_up__3.tsv',
    DIR + 'excool_digitalis/high_pressure_pump_80percent__4.tsv',
    DIR + 'shc2/compressor_shc2_klima4_bad.tsv',
    DIR + 'shc2/compressor_shc2_klima5_good.tsv',
    DIR + 'vertiv_digitalis/compressor_top_1.tsv',
    DIR + 'vertiv_digitalis/compressor_top_2.tsv',
    DIR + 'vertiv_digitalis/compressor_top_3.tsv',
    DIR + 'vertiv_digitalis/compressor_base.tsv',
    DIR + 'vertiv_digitalis/compressor_side.tsv'
]

T_WAVEFORM = 5
T_SEC = T_WAVEFORM
NFFT = 512

DATASET = []

Import dataset

In [3]:
Fs = 1160     # 1160 Hz +/-150 Hz (1020 - 1340 Hz)

for filename in file_list:
    ts = pd.read_csv(filename, delimiter='\t', index_col=False, header=None, names=['x', 'y', 'z'])
    # Calculate amplitude in m/s^2 Beaglebone Black ADC and ADXL335 resolution (VIN 1.8V, 12bits)
    for dim in ts.columns:
        ts[dim] = ts[dim] * (1800 / 4096)  # ADC to mV
        ts[dim] = (ts[dim] / 180) * 9.81  # mV to m/s^2 (180 mV/g)
        ts[dim] -= ts[dim].mean()

    ts['t'] = ts.index * (1 / Fs)
    ts.set_index('t', inplace=True)
    DATASET.append((os.path.basename(filename), ts))
In [4]:
for name, ts in DATASET:
    display(Markdown(f'**{name}**'))
    ts.info()
    print()

high_pressure_pump_40percent__1.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 38832 entries, 0.0 to 33.475
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       38832 non-null  float64
 1   y       38832 non-null  float64
 2   z       38832 non-null  float64
dtypes: float64(3)
memory usage: 1.2 MB

high_pressure_pump_40percent__2.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 59014 entries, 0.0 to 50.873275862068965
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       59014 non-null  float64
 1   y       59014 non-null  float64
 2   z       59014 non-null  float64
dtypes: float64(3)
memory usage: 1.8 MB

high_pressure_pump_40percent_speed_up__3.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 37931 entries, 0.0 to 32.69827586206897
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       37931 non-null  float64
 1   y       37931 non-null  float64
 2   z       37931 non-null  float64
dtypes: float64(3)
memory usage: 1.2 MB

high_pressure_pump_80percent__4.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 18550 entries, 0.0 to 15.99051724137931
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       18550 non-null  float64
 1   y       18550 non-null  float64
 2   z       18550 non-null  float64
dtypes: float64(3)
memory usage: 579.7 KB

compressor_shc2_klima4_bad.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 46205 entries, 0.0 to 39.83103448275862
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       46205 non-null  float64
 1   y       46205 non-null  float64
 2   z       46205 non-null  float64
dtypes: float64(3)
memory usage: 1.4 MB

compressor_shc2_klima5_good.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 34394 entries, 0.0 to 29.64913793103448
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       34394 non-null  float64
 1   y       34394 non-null  float64
 2   z       34394 non-null  float64
dtypes: float64(3)
memory usage: 1.0 MB

compressor_top_1.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 21039 entries, 0.0 to 18.136206896551723
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       21039 non-null  float64
 1   y       21039 non-null  float64
 2   z       21039 non-null  float64
dtypes: float64(3)
memory usage: 657.5 KB

compressor_top_2.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 13585 entries, 0.0 to 11.710344827586207
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       13585 non-null  float64
 1   y       13585 non-null  float64
 2   z       13585 non-null  float64
dtypes: float64(3)
memory usage: 424.5 KB

compressor_top_3.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 18491 entries, 0.0 to 15.939655172413794
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       18491 non-null  float64
 1   y       18491 non-null  float64
 2   z       18491 non-null  float64
dtypes: float64(3)
memory usage: 577.8 KB

compressor_base.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 13447 entries, 0.0 to 11.591379310344827
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       13447 non-null  float64
 1   y       13447 non-null  float64
 2   z       13447 non-null  float64
dtypes: float64(3)
memory usage: 420.2 KB

compressor_side.tsv

<class 'pandas.core.frame.DataFrame'>
Index: 22793 entries, 0.0 to 19.648275862068964
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   x       22793 non-null  float64
 1   y       22793 non-null  float64
 2   z       22793 non-null  float64
dtypes: float64(3)
memory usage: 712.3 KB

In [5]:
for name, ts in DATASET:
    display(Markdown(f'**{name}**'))
    display(tabulate(ts.describe(), headers='keys', tablefmt='html'))

high_pressure_pump_40percent__1.tsv

x y z
count38832 38832 38832
mean -5.91039e-15 -7.28292e-15 -3.52325e-15
std 0.156233 0.269068 0.088905
min -1.97741 -1.71713 -0.337432
25% -0.0853405 -0.184319 -0.0500295
50% 0.0104603 0.00728275 -0.00212907
75% 0.106261 0.174934 0.0457713
max 0.705016 1.10899 0.428974

high_pressure_pump_40percent__2.tsv

x y z
count59014 59014 59014
mean -4.19614e-15 4.07935e-15 -8.59432e-15
std 0.0943096 0.197273 0.0690056
min -0.418335 -0.851503 -0.275299
25% -0.0590825 -0.132997 -0.0357975
50% -0.0111821 0.010704 -0.0118473
75% 0.0606685 0.130455 0.0360531
max 0.372021 0.72921 0.251605

high_pressure_pump_40percent_speed_up__3.tsv

x y z
count37931 37931 37931
mean 4.76105e-15 3.5367e-15 4.15412e-15
std 0.850667 0.407354 0.303165
min -2.90341 -1.83915 -0.989876
25% -0.388635 -0.23449 -0.151619
50% 0.0664185 0.00501154 -0.0318681
75% 0.30592 0.244513 0.111833
max 2.50934 1.84918 1.11774

high_pressure_pump_80percent__4.tsv

x y z
count18550 18550 18550
mean -2.68742e-15 -2.5005e-15 8.80077e-15
std 0.937496 0.615358 0.370609
min -2.89281 -2.59842 -1.02679
25% -0.641493 -0.418954 -0.284332
50% 0.0530623 0.0121494 -0.0208799
75% 0.579967 0.419303 0.242572
max 2.59178 2.38322 1.08083

compressor_shc2_klima4_bad.tsv

x y z
count46205 46205 46205
mean 2.34361e-16 -2.87923e-15 8.44255e-15
std 0.0839049 0.0752622 0.190291
min -0.395752 -0.459668 -1.17776
25% -0.0604496 -0.0285645 -0.123954
50% -0.0125492 -0.00461432 -0.00420275
75% 0.0593014 0.0432861 0.115548
max 0.394604 0.450439 1.09751

compressor_shc2_klima5_good.tsv

x y z
count34394 34394 34394
mean 5.22877e-16 3.73079e-15 5.67769e-15
std 0.105077 0.230046 0.392763
min -0.426641 -0.571587 -1.26612
25% -0.0673884 -0.164434 -0.236258
50% 0.0044622 0.00321782 0.00324429
75% 0.0523626 0.170869 0.218796
max 0.579267 0.625923 1.2726

compressor_top_1.tsv

x y z
count21039 21039 21039
mean -1.39211e-15 1.57009e-15 5.34959e-15
std 1.32462 1.42278 0.39025
min -3.41267 -3.87311 -0.928501
25% -0.945797 -1.04699 -0.329746
50% 0.0361615 0.126574 -0.0183938
75% 1.06602 0.964831 0.316909
max 2.86228 3.40775 1.25097

compressor_top_2.tsv

x y z
count13585 13585 13585
mean -6.58815e-15 2.22394e-15 1.42161e-15
std 1.35929 1.4691 0.372723
min -3.63639 -4.11425 -0.88664
25% -0.953964 -1.07258 -0.311836
50% 0.0519447 0.148884 -0.0244333
75% 1.10575 1.01109 0.286919
max 2.94992 3.54981 1.43653

compressor_top_3.tsv

x y z
count18491 18491 18491
mean 5.09573e-15 6.55939e-16 -8.19405e-15
std 1.61442 1.31795 0.85044
min -3.85041 -3.72399 -3.17339
25% -1.16799 -0.849971 -0.514919
50% -0.186031 0.155937 0.0119848
75% 1.27493 0.850493 0.490989
max 3.7418 3.00601 2.52676

compressor_base.tsv

x y z
count13447 13447 13447
mean -2.2716e-15 -7.28139e-16 4.6156e-15
std 1.30529 2.3902 0.733422
min -2.49659 -5.04931 -1.68723
25% -1.15538 -1.95974 -0.513669
50% 0.0181831 0.243679 0.0850858
75% 1.09594 2.09982 0.516189
max 2.62875 4.29126 1.6179

compressor_side.tsv

x y z
count22793 22793 22793
mean 1.78719e-15 4.33564e-15 -2.57807e-15
std 1.14264 1.66626 1.30827
min -3.21371 -3.61176 -2.85124
25% -0.67499 -1.38439 -0.935224
50% -0.0522853 -0.186877 -0.192768
75% 0.953623 1.32199 0.908941
max 2.31878 4.17206 3.30396

Time domain waveform

In [6]:
axis = ['x', 'y', 'z']
for name, ts in DATASET:
    display(Markdown(f'**{name}**'))
    
    ax = ts[axis].plot(figsize=(20, 8), grid=True, subplots=True)
    for i, axname in enumerate(axis):
        ax[i].set_xlabel('Time [s]')
        ax[i].set_ylabel(f'Amplitude ({axname}) [m/s^2]')
    plt.show()               # plt.savefig('waveform.png')

high_pressure_pump_40percent__1.tsv

No description has been provided for this image

high_pressure_pump_40percent__2.tsv

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv

No description has been provided for this image

high_pressure_pump_80percent__4.tsv

No description has been provided for this image

compressor_shc2_klima4_bad.tsv

No description has been provided for this image

compressor_shc2_klima5_good.tsv

No description has been provided for this image

compressor_top_1.tsv

No description has been provided for this image

compressor_top_2.tsv

No description has been provided for this image

compressor_top_3.tsv

No description has been provided for this image

compressor_base.tsv

No description has been provided for this image

compressor_side.tsv

No description has been provided for this image

Time domain waveform zoom detail

In [7]:
axis = ['x', 'y', 'z']
for name, ts in DATASET:
    display(Markdown(f'**{name}**'))
    ax = (ts[axis].iloc[int(T_WAVEFORM*Fs):int(T_WAVEFORM*Fs)+Fs]
                  .plot(figsize=(20, 10), grid=True, subplots=True))
    
    for i, axname in enumerate(axis):
        ax[i].set_xlabel('Time [s]')
        ax[i].set_ylabel(f'Amplitude ({axname}) [m/s^2]')
        plt.show()      # plt.savefig('waveform_zoom.png')

high_pressure_pump_40percent__1.tsv

No description has been provided for this image

high_pressure_pump_40percent__2.tsv

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv

No description has been provided for this image

high_pressure_pump_80percent__4.tsv

No description has been provided for this image

compressor_shc2_klima4_bad.tsv

No description has been provided for this image

compressor_shc2_klima5_good.tsv

No description has been provided for this image

compressor_top_1.tsv

No description has been provided for this image

compressor_top_2.tsv

No description has been provided for this image

compressor_top_3.tsv

No description has been provided for this image

compressor_base.tsv

No description has been provided for this image

compressor_side.tsv

No description has been provided for this image
In [8]:
def spectogram(x):
    fig, ax = plt.subplots(figsize=(15, 4))
    cmap = plt.get_cmap('inferno')
    pxx, freqs, t, im = plt.specgram(
        x, NFFT=NFFT, Fs=Fs,
        detrend='mean',
        mode='magnitude', scale='dB',
        cmap=cmap, vmin=-60
    )
    fig.colorbar(im, aspect=20, pad=0.04)
    ax.set_xlabel('Time [s]')
    ax.set_ylabel('Frequency [Hz]')
    src.resolution_calc(Fs, NFFT)
    return freqs, pxx

def window_idx(t):
    return (Fs * t) // NFFT + 1

def spectrum_slice(freqs, Pxx, t):
    fig, ax = plt.subplots(2, 1, figsize=(20, 8))
    n = window_idx(t)

    dB = 20 * np.log10(Pxx.T[n] / 0.000001)
    ax[0].plot(freqs, dB)      # 1 dB = 1 um/s^2
    ax[0].grid(True)
    ax[0].set_xlabel('Frequency [Hz]')
    ax[0].set_ylabel('Amplitude [dB]')
    
    ax[1].plot(freqs, Pxx.T[n])
    ax[1].grid(True)
    ax[1].set_xlabel('Frequency [Hz]')
    ax[1].set_ylabel('Amplitude [m/s^2]')
    return n


def get_max_frequency(freqs, Pxx, i):
    max_freq = freqs[np.argmax(Pxx.T[i])]
    return max_freq


def get_peaks(freqs, Pxx, i, top=5):
    amplitudes = Pxx.T[i]
    peaks, _ = find_peaks(amplitudes, distance=3)

    fundamental = get_max_frequency(freqs, Pxx, i)
    f_top = freqs[peaks[np.argsort(amplitudes[peaks])]][::-top]
    y_top = np.sort(amplitudes[peaks])[::-top]

    return pd.DataFrame({
        'f': f_top,
        'y': y_top,
        '1x': f_top / fundamental 
    })


def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):
    b, a = butter(order, [lowcut, highcut], fs=fs, btype='band')
    y = lfilter(b, a, data)
    return y


def get_spectrograms(DATASET: List[pd.DataFrame], axis: str) -> list:
    spectrograms = []

    for name, ts in DATASET:
        base_freq = fundamental_frequency(ts[axis], Fs)
        display(Markdown(f'**{name}** *({axis.upper()} axis, Fundamental = {base_freq:.4f} Hz)*'))
        
        freqs, Pxx = spectogram(ts['x'])
        spectrograms.append((name, freqs, Pxx))
        plt.show()          # plt.savefig(f'x_axis_fft_{NFFT}.png')
    
    return spectrograms


def show_spectrogram_detail(spectrograms: list, axis: str, t: float):
    for name, freqs, Pxx in spectrograms:
        display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
        i_window = spectrum_slice(freqs, Pxx, t)
        # Incorrect fundamental frequency:
        # print(fdiscovery.harmonic_product_spectrum(freqs, Pxx.T[i_window]))
        plt.show()           #plt.savefig(f'x_axis_fft_{NFFT}_at_{T_SEC}s.png')


def show_mms_peaks(spectrograms: list, axis: str, t: float):
    for name, freqs, Pxx in spectrograms:
        display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
    
        i_window = window_idx(t)
        peaks = fdiscovery.mms_peak_finder(Pxx.T[i_window])
        
        fig, ax = plt.subplots(1, 1, figsize=(15, 3))
        ax.grid(True)
        ax.plot(freqs, Pxx.T[i_window])
        ax.scatter(freqs[peaks], Pxx.T[i_window][peaks], marker='^', color='red')
        ax.set_xlabel('Frequency [Hz]')
        
        plt.show()


def show_harmonic_series(spectrograms: list, axis: str, t: float):
    # https://stackoverflow.com/questions/1982770/changing-the-color-of-an-axis
    for name, freqs, Pxx in spectrograms:
        display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
    
        i_window = window_idx(t)
        h_series = fdiscovery.harmonic_series_detection(freqs, Pxx.T[i_window], Fs, NFFT)
    
        # Find best (sum of harmonics' amplitudes in the largest)
        max_harmonic_amp_idx = np.argmax([
            sum([h[1] for h in s]) / len(s)
            for s in h_series
        ])
        best_harmonic_series = pd.DataFrame(
            h_series[max_harmonic_amp_idx],
            columns=['Frequency [Hz]', 'Amplitude [m/s^2]']
        )
        best_harmonic_series.index += 1
        display(tabulate(best_harmonic_series, headers='keys', tablefmt='html'))
    
        # Plot found harmonic series
        fig, ax = plt.subplots(1, 8, figsize=(30, 4))
        for i in range(8):
            s = h_series[i+1]
            if i == max_harmonic_amp_idx:
                ax[i].xaxis.label.set_color('red')
    
            ax[i].plot(freqs, Pxx.T[i_window])
            ax[i].scatter([x[0] for x in s], [x[1] for x in s], marker='^', color='red')
            ax[i].set_xlabel('Frequency [Hz]')
    
        plt.show()

def show_spectra_largest_amplitudes(spectrograms: list, axis: str, t: float):
    for name, freqs, Pxx in spectrograms:
        display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))

        i_window = window_idx(t)
        x_fundamental = get_max_frequency(freqs, Pxx, i_window)
        peaks = get_peaks(freqs, Pxx, i_window)
        
        display(Markdown(f'- *Fundamental frequency:* {x_fundamental} Hz'))
        display(tabulate(peaks.head(5), headers='keys', tablefmt='html'))

Spectrogram in X axis

In [9]:
x_spectra = get_spectrograms(DATASET, 'x')

high_pressure_pump_40percent__1.tsv (X axis, Fundamental = 25.5408 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

high_pressure_pump_40percent__2.tsv (X axis, Fundamental = 25.4943 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (X axis, Fundamental = 47.8300 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

high_pressure_pump_80percent__4.tsv (X axis, Fundamental = 47.5881 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_shc2_klima4_bad.tsv (X axis, Fundamental = 0.0251 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_shc2_klima5_good.tsv (X axis, Fundamental = 28.8702 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_top_1.tsv (X axis, Fundamental = 47.9129 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_top_2.tsv (X axis, Fundamental = 49.4398 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_top_3.tsv (X axis, Fundamental = 48.6810 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_base.tsv (X axis, Fundamental = 48.8258 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_side.tsv (X axis, Fundamental = 49.6205 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

Spectrogram detail in X axis

In [10]:
show_spectrogram_detail(x_spectra, 'x', T_SEC)

high_pressure_pump_40percent__1.tsv (X axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent__2.tsv (X axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (X axis @ 5s)

No description has been provided for this image

high_pressure_pump_80percent__4.tsv (X axis @ 5s)

No description has been provided for this image

compressor_shc2_klima4_bad.tsv (X axis @ 5s)

No description has been provided for this image

compressor_shc2_klima5_good.tsv (X axis @ 5s)

No description has been provided for this image

compressor_top_1.tsv (X axis @ 5s)

No description has been provided for this image

compressor_top_2.tsv (X axis @ 5s)

No description has been provided for this image

compressor_top_3.tsv (X axis @ 5s)

No description has been provided for this image

compressor_base.tsv (X axis @ 5s)

No description has been provided for this image

compressor_side.tsv (X axis @ 5s)

No description has been provided for this image

Peaks in frequency spectrum in X axis

  • MMS peak finder algorithm
In [11]:
show_mms_peaks(x_spectra, 'x', T_SEC)

high_pressure_pump_40percent__1.tsv (X axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent__2.tsv (X axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (X axis @ 5s)

No description has been provided for this image

high_pressure_pump_80percent__4.tsv (X axis @ 5s)

No description has been provided for this image

compressor_shc2_klima4_bad.tsv (X axis @ 5s)

No description has been provided for this image

compressor_shc2_klima5_good.tsv (X axis @ 5s)

No description has been provided for this image

compressor_top_1.tsv (X axis @ 5s)

No description has been provided for this image

compressor_top_2.tsv (X axis @ 5s)

No description has been provided for this image

compressor_top_3.tsv (X axis @ 5s)

No description has been provided for this image

compressor_base.tsv (X axis @ 5s)

No description has been provided for this image

compressor_side.tsv (X axis @ 5s)

No description has been provided for this image

Harmonic series detection in X axis

In [12]:
show_harmonic_series(x_spectra, 'x', T_SEC)

high_pressure_pump_40percent__1.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 20.3906 0.0146296
2 43.0469 0.0164909
3 56.6406 0.0124512
4 79.2969 0.00816218
5 122.344 0.00463894
6 160.859 0.0106926
7 380.625 0.00167143
No description has been provided for this image

high_pressure_pump_40percent__2.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 11.3281 0.00480457
2 24.9219 0.00642867
3 31.7188 0.00817352
4 43.0469 0.0144605
5 65.7031 0.0138305
6 77.0312 0.00369309
7 142.734 0.00450612
8 154.062 0.00269428
No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 18.125 0.00644368
2 52.1094 0.0292742
3 72.5 0.0186523
4 106.484 0.0102005
5 197.109 0.00354446
6 287.734 0.00405812
No description has been provided for this image

high_pressure_pump_80percent__4.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 24.9219 0.0209609
2 47.5781 0.40815
3 95.1562 0.684107
4 120.078 0.00876636
5 142.734 0.025571
6 552.812 0.008082
No description has been provided for this image

compressor_shc2_klima4_bad.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 154.062 0.0283792
2 308.125 0.010593
3 462.188 0.0145172
No description has been provided for this image

compressor_shc2_klima5_good.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 52.1094 0.0646617
2 104.219 0.00945951
3 156.328 0.054688
4 208.438 0.0174424
5 260.547 0.00557364
6 364.766 0.00482011
No description has been provided for this image

compressor_top_1.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 47.5781 0.766224
2 145 0.0602588
3 188.047 0.0153765
4 233.359 0.016698
5 471.25 0.0187228
No description has been provided for this image

compressor_top_2.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 0.825486
2 99.6875 0.0560163
3 149.531 0.0794685
4 199.375 0.0667731
5 292.266 0.0140927
6 489.375 0.0125749
7 539.219 0.0171051
No description has been provided for this image

compressor_top_3.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 1.00669
2 99.6875 0.0744555
3 149.531 0.0771403
4 199.375 0.0800229
5 294.531 0.059878
No description has been provided for this image

compressor_base.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 0.921125
2 99.6875 0.0602615
3 149.531 0.0606726
4 199.375 0.0462516
5 292.266 0.00746856
No description has been provided for this image

compressor_side.tsv (X axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 0.605295
2 99.6875 0.16705
3 149.531 0.122099
4 199.375 0.0740995
5 536.953 0.018745
No description has been provided for this image
In [13]:
show_spectra_largest_amplitudes(x_spectra, 'x', T_SEC)

high_pressure_pump_40percent__1.tsv (X axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.8438 0.0375268 1
1 6.796880.0114317 0.136364
2 36.25 0.006907060.727273
3131.406 0.005150572.63636
4233.359 0.004092894.68182

high_pressure_pump_40percent__2.tsv (X axis @ 5s)

  • Fundamental frequency: 43.046875 Hz
f y 1x
0 43.04690.0144605 1
1 24.92190.006428670.578947
2 11.32810.004804570.263158
3380.625 0.003804048.84211
4226.562 0.003092025.26316

high_pressure_pump_40percent_speed_up__3.tsv (X axis @ 5s)

  • Fundamental frequency: 52.109375 Hz
f y 1x
0 52.10940.0292742 1
1 27.18750.00880891 0.521739
2457.656 0.00643 8.78261
3546.016 0.0049802910.4783
4337.578 0.00466762 6.47826

high_pressure_pump_80percent__4.tsv (X axis @ 5s)

  • Fundamental frequency: 95.15625 Hz
f y 1x
0 95.15620.684107 1
1 15.85940.04831130.166667
2475.781 0.02879785
3396.484 0.02421314.16667
4457.656 0.01973234.80952

compressor_shc2_klima4_bad.tsv (X axis @ 5s)

  • Fundamental frequency: 360.234375 Hz
f y 1x
0360.234 0.0316232 1
1 29.45310.0136152 0.081761
2514.297 0.006549991.42767
3353.438 0.004287340.981132
4410.078 0.003517661.13836

compressor_shc2_klima5_good.tsv (X axis @ 5s)

  • Fundamental frequency: 52.109375 Hz
f y 1x
0 52.1094 0.0646617 1
1 6.796880.008218410.130435
2260.547 0.005573645
3364.766 0.004820117
4 65.7031 0.003681131.26087

compressor_top_1.tsv (X axis @ 5s)

  • Fundamental frequency: 47.578125 Hz
f y 1x
0 47.57810.766224 1
1339.844 0.08904697.14286
2145 0.06025883.04762
3346.641 0.027358 7.28571
4104.219 0.02230452.19048

compressor_top_2.tsv (X axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84380.825486 1
1548.281 0.117761 11
2249.219 0.0457725 5
3240.156 0.0205001 4.81818
4323.984 0.0182378 6.5

compressor_top_3.tsv (X axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84381.00669 1
1348.906 0.116427 7
2249.219 0.03417335
3142.734 0.02777312.86364
4206.172 0.02053084.13636

compressor_base.tsv (X axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84380.921125 1
1348.906 0.0496577 7
2398.75 0.0371128 8
3410.078 0.0186843 8.22727
4163.125 0.009767473.27273

compressor_side.tsv (X axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84380.605295 1
1346.641 0.157153 6.95455
2308.125 0.0514137 6.18182
3536.953 0.018745 10.7727
4369.297 0.015345 7.40909

Spectrogram in Y axis

In [14]:
y_spectra = get_spectrograms(DATASET, 'y')

high_pressure_pump_40percent__1.tsv (Y axis, Fundamental = 0.0299 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

high_pressure_pump_40percent__2.tsv (Y axis, Fundamental = 33.1799 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (Y axis, Fundamental = 0.0306 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

high_pressure_pump_80percent__4.tsv (Y axis, Fundamental = 0.0625 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_shc2_klima4_bad.tsv (Y axis, Fundamental = 50.9893 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_shc2_klima5_good.tsv (Y axis, Fundamental = 50.4216 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_top_1.tsv (Y axis, Fundamental = 47.9129 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_top_2.tsv (Y axis, Fundamental = 49.4398 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_top_3.tsv (Y axis, Fundamental = 48.6810 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_base.tsv (Y axis, Fundamental = 48.8258 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_side.tsv (Y axis, Fundamental = 49.6205 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

Spectrogram detail in Y axis

In [15]:
show_spectrogram_detail(y_spectra, 'y', T_SEC)

high_pressure_pump_40percent__1.tsv (Y axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent__2.tsv (Y axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (Y axis @ 5s)

No description has been provided for this image

high_pressure_pump_80percent__4.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_shc2_klima4_bad.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_shc2_klima5_good.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_top_1.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_top_2.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_top_3.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_base.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_side.tsv (Y axis @ 5s)

No description has been provided for this image

Peaks in frequency spectrum in Y axis

In [16]:
show_mms_peaks(y_spectra, 'y', T_SEC)

high_pressure_pump_40percent__1.tsv (Y axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent__2.tsv (Y axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (Y axis @ 5s)

No description has been provided for this image

high_pressure_pump_80percent__4.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_shc2_klima4_bad.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_shc2_klima5_good.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_top_1.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_top_2.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_top_3.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_base.tsv (Y axis @ 5s)

No description has been provided for this image

compressor_side.tsv (Y axis @ 5s)

No description has been provided for this image

Harmonic series detection in Y axis

In [17]:
show_harmonic_series(y_spectra, 'y', T_SEC)

high_pressure_pump_40percent__1.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 20.3906 0.0146296
2 43.0469 0.0164909
3 56.6406 0.0124512
4 79.2969 0.00816218
5 122.344 0.00463894
6 160.859 0.0106926
7 380.625 0.00167143
No description has been provided for this image

high_pressure_pump_40percent__2.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 11.3281 0.00480457
2 24.9219 0.00642867
3 31.7188 0.00817352
4 43.0469 0.0144605
5 65.7031 0.0138305
6 77.0312 0.00369309
7 142.734 0.00450612
8 154.062 0.00269428
No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 18.125 0.00644368
2 52.1094 0.0292742
3 72.5 0.0186523
4 106.484 0.0102005
5 197.109 0.00354446
6 287.734 0.00405812
No description has been provided for this image

high_pressure_pump_80percent__4.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 24.9219 0.0209609
2 47.5781 0.40815
3 95.1562 0.684107
4 120.078 0.00876636
5 142.734 0.025571
6 552.812 0.008082
No description has been provided for this image

compressor_shc2_klima4_bad.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 154.062 0.0283792
2 308.125 0.010593
3 462.188 0.0145172
No description has been provided for this image

compressor_shc2_klima5_good.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 52.1094 0.0646617
2 104.219 0.00945951
3 156.328 0.054688
4 208.438 0.0174424
5 260.547 0.00557364
6 364.766 0.00482011
No description has been provided for this image

compressor_top_1.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 47.5781 0.766224
2 145 0.0602588
3 188.047 0.0153765
4 233.359 0.016698
5 471.25 0.0187228
No description has been provided for this image

compressor_top_2.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 0.825486
2 99.6875 0.0560163
3 149.531 0.0794685
4 199.375 0.0667731
5 292.266 0.0140927
6 489.375 0.0125749
7 539.219 0.0171051
No description has been provided for this image

compressor_top_3.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 1.00669
2 99.6875 0.0744555
3 149.531 0.0771403
4 199.375 0.0800229
5 294.531 0.059878
No description has been provided for this image

compressor_base.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 0.921125
2 99.6875 0.0602615
3 149.531 0.0606726
4 199.375 0.0462516
5 292.266 0.00746856
No description has been provided for this image

compressor_side.tsv (Y axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 0.605295
2 99.6875 0.16705
3 149.531 0.122099
4 199.375 0.0740995
5 536.953 0.018745
No description has been provided for this image
In [18]:
show_spectra_largest_amplitudes(y_spectra, 'y', T_SEC)

high_pressure_pump_40percent__1.tsv (Y axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.8438 0.0375268 1
1 6.796880.0114317 0.136364
2 36.25 0.006907060.727273
3131.406 0.005150572.63636
4233.359 0.004092894.68182

high_pressure_pump_40percent__2.tsv (Y axis @ 5s)

  • Fundamental frequency: 43.046875 Hz
f y 1x
0 43.04690.0144605 1
1 24.92190.006428670.578947
2 11.32810.004804570.263158
3380.625 0.003804048.84211
4226.562 0.003092025.26316

high_pressure_pump_40percent_speed_up__3.tsv (Y axis @ 5s)

  • Fundamental frequency: 52.109375 Hz
f y 1x
0 52.10940.0292742 1
1 27.18750.00880891 0.521739
2457.656 0.00643 8.78261
3546.016 0.0049802910.4783
4337.578 0.00466762 6.47826

high_pressure_pump_80percent__4.tsv (Y axis @ 5s)

  • Fundamental frequency: 95.15625 Hz
f y 1x
0 95.15620.684107 1
1 15.85940.04831130.166667
2475.781 0.02879785
3396.484 0.02421314.16667
4457.656 0.01973234.80952

compressor_shc2_klima4_bad.tsv (Y axis @ 5s)

  • Fundamental frequency: 360.234375 Hz
f y 1x
0360.234 0.0316232 1
1 29.45310.0136152 0.081761
2514.297 0.006549991.42767
3353.438 0.004287340.981132
4410.078 0.003517661.13836

compressor_shc2_klima5_good.tsv (Y axis @ 5s)

  • Fundamental frequency: 52.109375 Hz
f y 1x
0 52.1094 0.0646617 1
1 6.796880.008218410.130435
2260.547 0.005573645
3364.766 0.004820117
4 65.7031 0.003681131.26087

compressor_top_1.tsv (Y axis @ 5s)

  • Fundamental frequency: 47.578125 Hz
f y 1x
0 47.57810.766224 1
1339.844 0.08904697.14286
2145 0.06025883.04762
3346.641 0.027358 7.28571
4104.219 0.02230452.19048

compressor_top_2.tsv (Y axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84380.825486 1
1548.281 0.117761 11
2249.219 0.0457725 5
3240.156 0.0205001 4.81818
4323.984 0.0182378 6.5

compressor_top_3.tsv (Y axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84381.00669 1
1348.906 0.116427 7
2249.219 0.03417335
3142.734 0.02777312.86364
4206.172 0.02053084.13636

compressor_base.tsv (Y axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84380.921125 1
1348.906 0.0496577 7
2398.75 0.0371128 8
3410.078 0.0186843 8.22727
4163.125 0.009767473.27273

compressor_side.tsv (Y axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84380.605295 1
1346.641 0.157153 6.95455
2308.125 0.0514137 6.18182
3536.953 0.018745 10.7727
4369.297 0.015345 7.40909

Spectrogram in Z axis

In [19]:
z_spectra = get_spectrograms(DATASET, 'z')

high_pressure_pump_40percent__1.tsv (Z axis, Fundamental = 0.0299 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

high_pressure_pump_40percent__2.tsv (Z axis, Fundamental = 25.3960 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (Z axis, Fundamental = 47.8300 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

high_pressure_pump_80percent__4.tsv (Z axis, Fundamental = 47.5881 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_shc2_klima4_bad.tsv (Z axis, Fundamental = 50.2110 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_shc2_klima5_good.tsv (Z axis, Fundamental = 50.4890 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_top_1.tsv (Z axis, Fundamental = 0.0551 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_top_2.tsv (Z axis, Fundamental = 49.4398 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_top_3.tsv (Z axis, Fundamental = 48.6810 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_base.tsv (Z axis, Fundamental = 48.8258 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

compressor_side.tsv (Z axis, Fundamental = 49.6205 Hz)

Window size: 512
Heinsenberg box
	Time step: 441.37931034482756 ms
	Frequency step: 2.265625 Hz
No description has been provided for this image

Spectrogram detail in Z axis

In [20]:
show_spectrogram_detail(z_spectra, 'z', T_SEC)

high_pressure_pump_40percent__1.tsv (Z axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent__2.tsv (Z axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (Z axis @ 5s)

No description has been provided for this image

high_pressure_pump_80percent__4.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_shc2_klima4_bad.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_shc2_klima5_good.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_top_1.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_top_2.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_top_3.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_base.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_side.tsv (Z axis @ 5s)

No description has been provided for this image

Peaks in frequency spectrum in Z axis

In [21]:
show_mms_peaks(z_spectra, 'z', T_SEC)

high_pressure_pump_40percent__1.tsv (Z axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent__2.tsv (Z axis @ 5s)

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (Z axis @ 5s)

No description has been provided for this image

high_pressure_pump_80percent__4.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_shc2_klima4_bad.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_shc2_klima5_good.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_top_1.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_top_2.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_top_3.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_base.tsv (Z axis @ 5s)

No description has been provided for this image

compressor_side.tsv (Z axis @ 5s)

No description has been provided for this image

Harmonic series detection in Z axis

In [22]:
show_harmonic_series(z_spectra, 'z', T_SEC)

high_pressure_pump_40percent__1.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 20.3906 0.0146296
2 43.0469 0.0164909
3 56.6406 0.0124512
4 79.2969 0.00816218
5 122.344 0.00463894
6 160.859 0.0106926
7 380.625 0.00167143
No description has been provided for this image

high_pressure_pump_40percent__2.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 11.3281 0.00480457
2 24.9219 0.00642867
3 31.7188 0.00817352
4 43.0469 0.0144605
5 65.7031 0.0138305
6 77.0312 0.00369309
7 142.734 0.00450612
8 154.062 0.00269428
No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 18.125 0.00644368
2 52.1094 0.0292742
3 72.5 0.0186523
4 106.484 0.0102005
5 197.109 0.00354446
6 287.734 0.00405812
No description has been provided for this image

high_pressure_pump_80percent__4.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 24.9219 0.0209609
2 47.5781 0.40815
3 95.1562 0.684107
4 120.078 0.00876636
5 142.734 0.025571
6 552.812 0.008082
No description has been provided for this image

compressor_shc2_klima4_bad.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 154.062 0.0283792
2 308.125 0.010593
3 462.188 0.0145172
No description has been provided for this image

compressor_shc2_klima5_good.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 52.1094 0.0646617
2 104.219 0.00945951
3 156.328 0.054688
4 208.438 0.0174424
5 260.547 0.00557364
6 364.766 0.00482011
No description has been provided for this image

compressor_top_1.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 47.5781 0.766224
2 145 0.0602588
3 188.047 0.0153765
4 233.359 0.016698
5 471.25 0.0187228
No description has been provided for this image

compressor_top_2.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 0.825486
2 99.6875 0.0560163
3 149.531 0.0794685
4 199.375 0.0667731
5 292.266 0.0140927
6 489.375 0.0125749
7 539.219 0.0171051
No description has been provided for this image

compressor_top_3.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 1.00669
2 99.6875 0.0744555
3 149.531 0.0771403
4 199.375 0.0800229
5 294.531 0.059878
No description has been provided for this image

compressor_base.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 0.921125
2 99.6875 0.0602615
3 149.531 0.0606726
4 199.375 0.0462516
5 292.266 0.00746856
No description has been provided for this image

compressor_side.tsv (Z axis @ 5s)

Frequency [Hz] Amplitude [m/s^2]
1 49.8438 0.605295
2 99.6875 0.16705
3 149.531 0.122099
4 199.375 0.0740995
5 536.953 0.018745
No description has been provided for this image
In [23]:
show_spectra_largest_amplitudes(z_spectra, 'z', T_SEC)

high_pressure_pump_40percent__1.tsv (Z axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.8438 0.0375268 1
1 6.796880.0114317 0.136364
2 36.25 0.006907060.727273
3131.406 0.005150572.63636
4233.359 0.004092894.68182

high_pressure_pump_40percent__2.tsv (Z axis @ 5s)

  • Fundamental frequency: 43.046875 Hz
f y 1x
0 43.04690.0144605 1
1 24.92190.006428670.578947
2 11.32810.004804570.263158
3380.625 0.003804048.84211
4226.562 0.003092025.26316

high_pressure_pump_40percent_speed_up__3.tsv (Z axis @ 5s)

  • Fundamental frequency: 52.109375 Hz
f y 1x
0 52.10940.0292742 1
1 27.18750.00880891 0.521739
2457.656 0.00643 8.78261
3546.016 0.0049802910.4783
4337.578 0.00466762 6.47826

high_pressure_pump_80percent__4.tsv (Z axis @ 5s)

  • Fundamental frequency: 95.15625 Hz
f y 1x
0 95.15620.684107 1
1 15.85940.04831130.166667
2475.781 0.02879785
3396.484 0.02421314.16667
4457.656 0.01973234.80952

compressor_shc2_klima4_bad.tsv (Z axis @ 5s)

  • Fundamental frequency: 360.234375 Hz
f y 1x
0360.234 0.0316232 1
1 29.45310.0136152 0.081761
2514.297 0.006549991.42767
3353.438 0.004287340.981132
4410.078 0.003517661.13836

compressor_shc2_klima5_good.tsv (Z axis @ 5s)

  • Fundamental frequency: 52.109375 Hz
f y 1x
0 52.1094 0.0646617 1
1 6.796880.008218410.130435
2260.547 0.005573645
3364.766 0.004820117
4 65.7031 0.003681131.26087

compressor_top_1.tsv (Z axis @ 5s)

  • Fundamental frequency: 47.578125 Hz
f y 1x
0 47.57810.766224 1
1339.844 0.08904697.14286
2145 0.06025883.04762
3346.641 0.027358 7.28571
4104.219 0.02230452.19048

compressor_top_2.tsv (Z axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84380.825486 1
1548.281 0.117761 11
2249.219 0.0457725 5
3240.156 0.0205001 4.81818
4323.984 0.0182378 6.5

compressor_top_3.tsv (Z axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84381.00669 1
1348.906 0.116427 7
2249.219 0.03417335
3142.734 0.02777312.86364
4206.172 0.02053084.13636

compressor_base.tsv (Z axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84380.921125 1
1348.906 0.0496577 7
2398.75 0.0371128 8
3410.078 0.0186843 8.22727
4163.125 0.009767473.27273

compressor_side.tsv (Z axis @ 5s)

  • Fundamental frequency: 49.84375 Hz
f y 1x
0 49.84380.605295 1
1346.641 0.157153 6.95455
2308.125 0.0514137 6.18182
3536.953 0.018745 10.7727
4369.297 0.015345 7.40909

Histogram

In [24]:
axis = ['x', 'y', 'z']
for name, ts in DATASET:
    display(Markdown(f'**{name}**'))
    ts[axis].hist(figsize=(10, 5), grid=True, bins=50)
    plt.show()

high_pressure_pump_40percent__1.tsv

No description has been provided for this image

high_pressure_pump_40percent__2.tsv

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv

No description has been provided for this image

high_pressure_pump_80percent__4.tsv

No description has been provided for this image

compressor_shc2_klima4_bad.tsv

No description has been provided for this image

compressor_shc2_klima5_good.tsv

No description has been provided for this image

compressor_top_1.tsv

No description has been provided for this image

compressor_top_2.tsv

No description has been provided for this image

compressor_top_3.tsv

No description has been provided for this image

compressor_base.tsv

No description has been provided for this image

compressor_side.tsv

No description has been provided for this image

Orbitals of all cross sections

In [25]:
for name, ts in DATASET:
    display(Markdown(f'**{name}**'))
    fig, ax = plt.subplots(1, 3, figsize=(20, 4))

    for i, col in enumerate([('x', 'y'), ('x', 'z'), ('y', 'z')]):
        ax[i].scatter(ts[col[0]], ts[col[1]], s=1)
        ax[i].grid(True)
        ax[i].set_xlabel(col[0].upper())
        ax[i].set_ylabel(col[1].upper())
        ax[i].grid(True)
    plt.show()       # plt.savefig('orbitals.png')

high_pressure_pump_40percent__1.tsv

No description has been provided for this image

high_pressure_pump_40percent__2.tsv

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv

No description has been provided for this image

high_pressure_pump_80percent__4.tsv

No description has been provided for this image

compressor_shc2_klima4_bad.tsv

No description has been provided for this image

compressor_shc2_klima5_good.tsv

No description has been provided for this image

compressor_top_1.tsv

No description has been provided for this image

compressor_top_2.tsv

No description has been provided for this image

compressor_top_3.tsv

No description has been provided for this image

compressor_base.tsv

No description has been provided for this image

compressor_side.tsv

No description has been provided for this image

Orbitals of 1x harmonic frequency

In [26]:
x_spectra_by_name = {spec[0]: spec for spec in x_spectra}
y_spectra_by_name = {spec[0]: spec for spec in y_spectra}
z_spectra_by_name = {spec[0]: spec for spec in z_spectra}
t = 5
space = 5

for name, ts in DATASET:
    display(Markdown(f'**{name}**'))
    fig, ax = plt.subplots(1, 3, figsize=(20, 4))

    name, freqs, Pxx = x_spectra_by_name[name]
    x_fundamental = get_max_frequency(freqs, Pxx, window_idx(t))

    name, freqs, Pxx = y_spectra_by_name[name]
    y_fundamental = get_max_frequency(freqs, Pxx, window_idx(t))

    name, freqs, Pxx = z_spectra_by_name[name]
    z_fundamental = get_max_frequency(freqs, Pxx, window_idx(t))

    ts['x_1x'] = butter_bandpass_filter(ts['x'], x_fundamental - space, x_fundamental + space, Fs)
    ts['y_1x'] = butter_bandpass_filter(ts['y'], y_fundamental - space, y_fundamental + space, Fs)
    ts['z_1x'] = butter_bandpass_filter(ts['z'], z_fundamental - space, z_fundamental + space, Fs)
    
    for i, col in enumerate([('x_1x', 'y_1x'), ('x_1x', 'z_1x'), ('y_1x', 'z_1x')]):
        ax[i].scatter(ts[col[0]], ts[col[1]], s=1)
        ax[i].grid(True)
        ax[i].set_xlabel(col[0].upper())
        ax[i].set_ylabel(col[1].upper())
        ax[i].grid(True)
    
    plt.show()       # plt.savefig('orbitals_1x.png')

high_pressure_pump_40percent__1.tsv

No description has been provided for this image

high_pressure_pump_40percent__2.tsv

No description has been provided for this image

high_pressure_pump_40percent_speed_up__3.tsv

No description has been provided for this image

high_pressure_pump_80percent__4.tsv

No description has been provided for this image

compressor_shc2_klima4_bad.tsv

No description has been provided for this image

compressor_shc2_klima5_good.tsv

No description has been provided for this image

compressor_top_1.tsv

No description has been provided for this image

compressor_top_2.tsv

No description has been provided for this image

compressor_top_3.tsv

No description has been provided for this image

compressor_base.tsv

No description has been provided for this image

compressor_side.tsv

No description has been provided for this image